### プロジェクト20 ライトピラー **1. 説明** フォトレジスタの抵抗値(1KΩ未満)は光の強さによって変化し、それによってドットマトリクスの明るさを制御できます。制御する際には、この抵抗をボードのアナログピンに接続して抵抗の変化を監視します。こうすることで、光が自動的にディスプレイの明るさを調整します。 また、フォトレジスタは日常生活でも広く応用されています。例えば、カーテンが外の光の強さに応じて自動的に開閉するなどです。 **2. 動作原理** ![](media/B43.png) 完全に暗い状態では、抵抗は0.2MΩとなり、信号端子(ポイント2)の電圧は0Vに近づきます。光が強くなるほど、抵抗と電圧は小さくなります。 **3. 配線図** ![](media/B44.png) **4. テストコード** フォトレジスタのアナログ値を読み取る方法: 1. 基本ブロックを2つドラッグし、その間にボーレート設定ブロックを置き、9600に設定します。 2. 「forever」ループ内に「シリアルプリント」ブロックを追加し、モードを「warp」に設定します。 3. 「Light」から「値を読む」ブロックをドラッグして「シリアルプリント」ブロックに接続し、ピンをIO33に設定します。 ![](media/B45.png) **5. テスト結果** 配線を接続しコードをアップロードした後、シリアルモニターを開きボーレートを9600に設定すると、アナログ値が0~4095の範囲で表示されます。 ![](media/B46.png) **6. 拡張コード** この拡張プロジェクトでは、フォトレジスタを使って周囲の光の強さを検知します。中央の2列を使って光の強さを表現し、明るいほど点灯するLEDが多くなります。これにより「ライトピラー」が形成されます。 **配線図:** ![](media/B47.png) 1. 基本ブロックを2つドラッグします。 2. 「Matrix」でドットマトリクスディスプレイを初期化し、ピンCSをIO15に設定します。「明るさ設定」ブロックを追加し、値を3に設定します。 ![](media/B48.png) 3. 「変数」ブロックをドラッグし、範囲をローカル、型をint、名前をlightに設定します。 ![](media/B49.png) 4. 変数にマップ関数を割り当てます。「Light」から「IO33の値を読む」ブロックをマップ関数の値に追加し、範囲を(0,4095)から(0,7)に設定します。 ![](media/B50.png) 5. 「Matrix」内の以下のブロックを見つけます。まずディスプレイをクリアし、次にドット(x0:3 y0:0, x1:3 y1:変数light)と(x0:4 y0:0, x1:4 y1:変数light)に線を描画します。最後にマトリクスの表示を更新します。 ![](media/B51.png) **完成コード:** ![](media/B52.png) **7. コード説明** ピンを設定してフォトレジスタのアナログ値を読み取ります。 ![](media/B53.png)